Ergebnis 1 bis 8 von 8

Thema: kurze Analyse des Codes

Hybrid-Darstellung

  1. #1
    Junior
    Registriert
    Aug 2016
    Beiträge
    154
    Gefällt mir!
    152
    Du gefällst: 19

    kurze Analyse des Codes

    Moinmoin,

    ich habe mir mittels IDA Pro folgenden Code aus einer exe decompilieren lassen:
    Code:
    public void Login()
    {
        try
        {
            string str2 = "";
            if (!this.UsernameTextBox.Enabled & (this.UsernameTextBox.Text == "Ich bins"))
            {
                str2 = "CHEF";
            }
            Module1.connfilltbl("SELECT UserName,PassWord FROM loginData WHERE UCASE(UserName)='" + str2 + "'", "loginForm");
        }
        catch (Exception exception1)
        {
            ProjectData.SetProjectError(exception1);
            Exception exception = exception1;
            MessageBox.Show(exception.Message, "False");
            this.Close();
            ProjectData.ClearProjectError();
        }
        if (Module1.DBS.Tables["loginForm"].Rows.Count != 0)
        {
            if (Operators.ConditionalCompareObjectEqual(Operators.ConcatenateObject("8", Module1.DBS.Tables["loginForm"].Rows[0]["PassWord"]), this.bntz_pw.Text.ToString(), false))
            {
                Module1.FrmHauptmenu.lblFlag.Text = "1";
                this.Close();
            }
            else if (Operators.ConditionalCompareObjectEqual(Module1.DBS.Tables["loginForm"].Rows[0]["PassWord"], this.bntz_pw.Text.ToString(), false))
            {
                Module1.FrmHauptmenu.lblFlag.Text = "0";
                this.Close();
            }
            else
            {
                MessageBox.Show("Eingabe Falsch! Bitte versuchen Sie noch ein mal!", "Warning", MessageBoxButtons.OKCancel);
                this.bntz_pw.Text = "";
                this.bntz_pw.Focus();
                Module1.DBS.Tables["loginForm"].Clear();
            }
            Module1.FrmHauptmenu.Button4.Visible = false;
            Module1.FrmHauptmenu.Button1.Visible = false;
        }
        else
        {
            MessageBox.Show("Eingabe Falsch! Bitte versuchen Sie noch ein mal!", "Warning", MessageBoxButtons.OKCancel);
            this.bntz_pw.Text = "";
            this.bntz_pw.Focus();
            Module1.DBS.Tables["loginForm"].Clear();
        }
        try
        {
            Module1.NumTast.Close();
        }
        catch (Exception exception4)
        {
            ProjectData.SetProjectError(exception4);
            Exception exception2 = exception4;
            ProjectData.ClearProjectError();
        }
        try
        {
        }
        catch (Exception exception5)
        {
            ProjectData.SetProjectError(exception5);
            Exception exception3 = exception5;
            ProjectData.ClearProjectError();
        }
    }
    Verstehe ich das richtig, dass der Login nur funzt, wenn aus
    Code:
    bntz_pw
    ein String kommt, welcher konkateniert wird mit "8"? Das PW würde dann also so aussehen: "8meinpasswort" oder "8geheim"?

  2. #2
    Senior Avatar von Nimbus
    Registriert
    Oct 2015
    Beiträge
    587
    Gefällt mir!
    110
    Du gefällst: 605
    Hinweis: Habe es nur kurz überflogen. Daher keine Garantie auf Richtigkeit.

    Deine Interpretation scheint soweit richtig zu sein. Es wird ein Passwort per SQL ausgelesen. Allerdings gibt es zwei Fälle. Einmal den beschriebenen in dem die "8" zusammen mit dem Passwort etwas auslöst und einmal den Fall in dem das Passwort aus der DB direkt genügt.
    Beide Fälle unterscheiden sich dadurch, dass einmal Module1.FrmHauptmenu.lblFlag.Text auf 1 gesetzt wird und einmal auf 0.
    Was genau eine 1 oder eine 0 an der Stelle bedeutet lässt sich mit dem vorliegenden Code nicht bestimmen.

  3. Diesen Mitgliedern gefällt dieser Beitrag:


  4. #3
    Junior
    THEMENSTARTER


    Registriert
    Aug 2016
    Beiträge
    154
    Gefällt mir!
    152
    Du gefällst: 19
    Ok, sehr schön. Die von dir erwähnten Fälle
    Einmal den beschriebenen in dem die "8" zusammen mit dem Passwort etwas auslöst und einmal den Fall in dem das Passwort aus der DB direkt genügt.
    treffen zu 100% zu. Genau das konnte ich bisher aus dem decompilierten/disassambilierten Code rauslesen. Je nach Eingabe des PW wird etwas unterschiedliches gestartet. Genau das versuche ich mittels decompilieren/disassamblieren heraus zu bekommen.

    Jetzt hab ich aber erstmal "Gewissheit", dass ich beim Befehl CMP (Assabmler) nicht ganz so falsch lag

    Dankö

    (bei Interesse und/oder Langeweile kann ich die exe zur Verfügung stellen)

  5. #4
    Senior Avatar von Nimbus
    Registriert
    Oct 2015
    Beiträge
    587
    Gefällt mir!
    110
    Du gefällst: 605
    Den Unterschied (im vorliegenden Code) hab ich ja schon beschrieben. Folglich müsstest du schauen was mit "lblFlag" passiert. Wenn du die EXE bereitstellst, dann kann ich dir womöglich mehr dazu erzählen

  6. Diesen Mitgliedern gefällt dieser Beitrag:


  7. #5
    Junior
    THEMENSTARTER


    Registriert
    Aug 2016
    Beiträge
    154
    Gefällt mir!
    152
    Du gefällst: 19
    ok, ich poste die datei. wenn das hier verboten sein sollte, bitte löschen. dann schick ichs per PM
    Geändert von noobee (01.10.2017 um 22:37 Uhr)

  8. #6
    Senior Avatar von Nimbus
    Registriert
    Oct 2015
    Beiträge
    587
    Gefällt mir!
    110
    Du gefällst: 605
    Als Hauptunterschied konnte ich folgendes Entdecken

    Code:
    if (this.lblFlag.Text == "0")
    {
        abrg.Button1.Visible = false;
        abrg.ButtonTest1.Visible = false;
        abrg.Solltextbox.Visible = false;
        abrg.BtnOK.Text = "Beenden";
        abrg.OffeneTageDataGrid.Enabled = true;
        abrg.Button5.Visible = false;
        abrg.Button4.Visible = false;
    }
    else if (this.lblFlag.Text == "1")
    {
        abrg.ElementenPanel.Visible = true;
    }
    Hier werden je nach Login unterschiedliche Buttons/Elemente sichtbar gemacht.
    Außerdem ist kann jemand, der sich mit der 8 einloggt bei VorAbrg (vor Abrechnung?) auf die Funktionalität "DGV_Detail_CellClick" zugreifen, die wohl (so lässt es der Name vermuten) Zugriff auf weitere Details einer Zelle erlaubt.

  9. Diesen Mitgliedern gefällt dieser Beitrag:


  10. #7
    Junior
    THEMENSTARTER


    Registriert
    Aug 2016
    Beiträge
    154
    Gefällt mir!
    152
    Du gefällst: 19
    Ah ok. Nach dem lblFlag hatte ich vorher nicht gesucht. Aber das, was du da erklärst ist genau das, was die exe so interessant macht Es gibt eben Passwörter, mit denen man mehr, bzw. weniger sehen kann. Jetzt schau ich mir mal genauer an, welche(un)sichtbaren Elemente man mit den PW sehen kann.
    Auf jeden Fall mal vielen Dank für die kurze Analyse. Den Rest fummel ich mir selber zusammen. Muss ja n bissi warm werden mit dem Thema "reverse engineering"... Da tut ein bisschen Übung nicht schlecht.

    DANKE DANKE

  11. #8
    Senior Avatar von Nimbus
    Registriert
    Oct 2015
    Beiträge
    587
    Gefällt mir!
    110
    Du gefällst: 605
    Es gibt eben Passwörter, mit denen man mehr, bzw. weniger sehen kann
    Ich bin mir nicht sicher, ob du das richtig verstanden hast. So wie ich das auffasse können alle Passwörter jeweils alles sehen. Das Passwort regulär eingegeben liefert die eine Ansicht bzw. die einen Rechte. Das Passwort mit einer 8 voran eingegeben liefert die andere Ansicht/anderen Rechte.

  12. Diesen Mitgliedern gefällt dieser Beitrag:


Ähnliche Themen

  1. (Biete) - Professionelle Astrologische Analyse + Numerologie
    Von Rocky-Fox im Forum Sonstige
    Antworten: 2
    Letzter Beitrag: 31.01.2019, 17:59
  2. (Suche) - Kleines Tool zur Analyse von MP3 scene releases gesucht
    Von rudebwoi im Forum Entwickler / IT-Techniker
    Antworten: 3
    Letzter Beitrag: 17.05.2017, 11:19
  3. Antworten: 0
    Letzter Beitrag: 29.06.2016, 10:56

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org